package com.alageek.crowd.service.api;

import com.alageek.crowd.entity.Admin;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @author hasee
 */
public interface AdminService {

    /**
     * 根据id有选择的更新数据
     * @param admin 管理员数据
     */
    public void update(Admin admin);

    /**
     * 根据id删除t_admin表数据
     * @param adminId 管理员ID
     */
    public void remove(Integer adminId);

    /**
     * 根据关键字分页获取t_admin表中数据
     * @param keyword 关键字
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 返回账号包含关键字，或用户名包含关键字，或邮箱包含关键字的所有数据
     */
    PageInfo<Admin> getAdminPage(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 根据admin对象获取t_admin表中对应信息
     * @param admin t_admin表对应实体类对象
     * @return 对应t_admin表中的数据
     */
    List<Admin> getAdmin(Admin admin);

    /**
     * 向t_admin表存储一行数据
     * @param admin t_admin表对应实体类对象
     */
    void saveAdmin(Admin admin);

    /**
     * 获取t_admin所有数据
     * @return t_admin所有数据
     */
    List<Admin> getAll();

    void saveAdminRoleRelationship(Integer adminId, List<Integer> roleIdList);
}
